/*
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is the FxStruts MailReader Application.
 *
 * The Initial Developer of the Original Code is
 * Anirudh Sasikumar (http://anirudhs.chaosnet.org/).
 * Portions created by the Initial Developer are Copyright (C) 2008
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *
*/

package com.adobe.mailreader.business
{
    import com.adobe.cairngorm.business.ServiceLocator;
    import com.adobe.mailreader.vo.ServiceResultVO;
    import com.adobe.mailreader.vo.SubscriptionVO;
    import com.adobe.mailreader.vo.UserVO;
    
    import flash.net.registerClassAlias;
    
    import mx.rpc.AsyncToken;
    import mx.rpc.IResponder;

    /* Gets all the user's details including subscriptions */
    public class SubscriptionDelegate
    {
        public function SubscriptionDelegate(responder:IResponder)
        {			
            this.service = ServiceLocator.getInstance().getHTTPService("service");
            this.responder = responder;
            
            /* register the subscription type so that amf can decode
             * it to SubscriptionVO */
            registerClassAlias("org.apache.struts.apps.mailreader.dao.impl.AbstractSubscription", SubscriptionVO);
        }
        
        public function getSubscription():void
        {
            service.url = "EditRegistration.do";
            service.numObjects = 1;
            service.serverType = "org.apache.struts.apps.mailreader.dao.impl.memory.MemoryUser";
            service.returnType = UserVO;
            
            var call:AsyncToken = service.send();
            call.addResponder(responder);
        }
        
        private var responder: IResponder;
        private var service: Object;
        
    }
}